/*
 * NPCForm.java
 *
 * Created on September 18, 2007, 4:45 PM
 */

package jia.editor.forms;

import jia.editor.lists.pnl_NPCList;
import jia.tools.HumanNameGenerator;
import jia.tools.PanelSwapper;

/**
 *
 * @author  estell
 */
public class NPCForm extends javax.swing.JPanel {
    
    /** Creates new form NPCForm */
    public NPCForm() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        pop_NPCItems = new javax.swing.JPopupMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        pop_NPCSpells = new javax.swing.JPopupMenu();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItem4 = new javax.swing.JMenuItem();
        pop_NPCLevels = new javax.swing.JPopupMenu();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenuItem7 = new javax.swing.JMenuItem();
        lbl_NPCName = new javax.swing.JLabel();
        txt_NPCName = new javax.swing.JTextField();
        btn_NPCGenerateName = new javax.swing.JButton();
        btn_NPCSave = new javax.swing.JButton();
        btn_NPCCancel = new javax.swing.JButton();
        jToolBar1 = new javax.swing.JToolBar();
        jSplitPane1 = new javax.swing.JSplitPane();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        lbl_NPCStrength = new javax.swing.JLabel();
        spnr_NPCStrength = new javax.swing.JSpinner();
        lbl_NPCDexterity = new javax.swing.JLabel();
        spnr_NPCDexterity = new javax.swing.JSpinner();
        lbl_NPCContstitution = new javax.swing.JLabel();
        spnr_NPCConstitution = new javax.swing.JSpinner();
        lbl_NPCIntelligence = new javax.swing.JLabel();
        spnr_NPCIntelligence = new javax.swing.JSpinner();
        lbl_NPCWisdom = new javax.swing.JLabel();
        spnr_NPCWisdom = new javax.swing.JSpinner();
        lbl_NPCCharisma = new javax.swing.JLabel();
        spnr_NPCCharisma = new javax.swing.JSpinner();
        btn_NPCRollStats = new javax.swing.JButton();
        lbl_NPCHitPoints = new javax.swing.JLabel();
        lbl_NPCAge = new javax.swing.JLabel();
        spnr_NPCHitPoints = new javax.swing.JSpinner();
        spnr_NPCAge = new javax.swing.JSpinner();
        jPanel4 = new javax.swing.JPanel();
        lbl_NPCRace = new javax.swing.JLabel();
        cbo_NPCRace = new javax.swing.JComboBox();
        lbl_NPCAlignment = new javax.swing.JLabel();
        cbo_NPCAlignment = new javax.swing.JComboBox();
        lbl_NPCGender = new javax.swing.JLabel();
        cbo_NPCGender = new javax.swing.JComboBox();
        cb_NPCCanTradeItems = new javax.swing.JCheckBox();
        cb_NPCCanBeSaved = new javax.swing.JCheckBox();
        cb_NPCAllowInCombat = new javax.swing.JCheckBox();
        jScrollPane3 = new javax.swing.JScrollPane();
        tbl_ClassLevels = new javax.swing.JTable();
        jPanel3 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jPanel5 = new javax.swing.JPanel();
        jPanel6 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTable2 = new javax.swing.JTable();
        jScrollPane4 = new javax.swing.JScrollPane();
        jTextPane1 = new javax.swing.JTextPane();

        jMenuItem1.setText("Add");
        pop_NPCItems.add(jMenuItem1);

        jMenuItem2.setText("Delete Selected");
        pop_NPCItems.add(jMenuItem2);

        jMenuItem3.setText("Add");
        pop_NPCSpells.add(jMenuItem3);

        jMenuItem4.setText("Delete Selected");
        pop_NPCSpells.add(jMenuItem4);

        jMenuItem5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jia_ui/images/add.png")));
        jMenuItem5.setText("Add");
        pop_NPCLevels.add(jMenuItem5);

        jMenuItem6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jia_ui/images/pencil.png")));
        jMenuItem6.setText("Edit");
        pop_NPCLevels.add(jMenuItem6);

        jMenuItem7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jia_ui/images/delete.png")));
        jMenuItem7.setText("Delete");
        pop_NPCLevels.add(jMenuItem7);

        setPreferredSize(new java.awt.Dimension(800, 580));
        lbl_NPCName.setText("NPC Name");

        btn_NPCGenerateName.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jia_ui/images/arrow_rotate_clockwise.png")));
        btn_NPCGenerateName.setText("Random Generate");
        btn_NPCGenerateName.setPreferredSize(new java.awt.Dimension(125, 30));
        btn_NPCGenerateName.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_NPCGenerateNameActionPerformed(evt);
            }
        });

        btn_NPCSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jia_ui/images/disk.png")));
        btn_NPCSave.setText("Save");
        btn_NPCSave.setPreferredSize(new java.awt.Dimension(132, 30));

        btn_NPCCancel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jia_ui/images/door_out.png")));
        btn_NPCCancel.setText("Cancel");
        btn_NPCCancel.setPreferredSize(new java.awt.Dimension(132, 30));
        btn_NPCCancel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_NPCCancelActionPerformed(evt);
            }
        });

        jSplitPane1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        jSplitPane1.setDividerLocation(405);
        jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
        jSplitPane1.setPreferredSize(new java.awt.Dimension(780, 466));
        jTabbedPane1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        jTabbedPane1.setTabPlacement(javax.swing.JTabbedPane.BOTTOM);
        jTabbedPane1.setPreferredSize(new java.awt.Dimension(780, 486));
        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Skills"));
        lbl_NPCStrength.setText("Strength");

        lbl_NPCDexterity.setText("Dexterity");

        lbl_NPCContstitution.setText("Constitution");

        lbl_NPCIntelligence.setText("Itelligence");

        lbl_NPCWisdom.setText("Wisdom");

        lbl_NPCCharisma.setText("Charismas");

        btn_NPCRollStats.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jia_ui/images/arrow_rotate_clockwise.png")));
        btn_NPCRollStats.setText("Roll Stats");
        btn_NPCRollStats.setMaximumSize(new java.awt.Dimension(125, 30));
        btn_NPCRollStats.setMinimumSize(new java.awt.Dimension(125, 30));
        btn_NPCRollStats.setPreferredSize(new java.awt.Dimension(125, 30));

        lbl_NPCHitPoints.setText("Hit Points");

        lbl_NPCAge.setText("Age");

        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(btn_NPCRollStats, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCStrength)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCStrength, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCDexterity)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCDexterity, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCContstitution)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCConstitution, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCIntelligence)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCIntelligence, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCWisdom)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCWisdom, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCCharisma)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCCharisma, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCHitPoints)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCHitPoints, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(lbl_NPCAge)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(spnr_NPCAge, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)))
                .addContainerGap())
        );

        jPanel2Layout.linkSize(new java.awt.Component[] {lbl_NPCAge, lbl_NPCCharisma, lbl_NPCContstitution, lbl_NPCDexterity, lbl_NPCHitPoints, lbl_NPCIntelligence, lbl_NPCStrength, lbl_NPCWisdom}, org.jdesktop.layout.GroupLayout.HORIZONTAL);

        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCStrength)
                    .add(spnr_NPCStrength, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCDexterity)
                    .add(spnr_NPCDexterity, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCContstitution)
                    .add(spnr_NPCConstitution, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCIntelligence)
                    .add(spnr_NPCIntelligence, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCWisdom)
                    .add(spnr_NPCWisdom, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCCharisma)
                    .add(spnr_NPCCharisma, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(btn_NPCRollStats, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(60, 60, 60)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCHitPoints)
                    .add(spnr_NPCHitPoints, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCAge)
                    .add(spnr_NPCAge, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(20, Short.MAX_VALUE))
        );

        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Title"));
        lbl_NPCRace.setText("Race");

        cbo_NPCRace.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Human", "Elf", "Dwarf", "Halfling", "Half-Orc", "Gnome" }));

        lbl_NPCAlignment.setText("Alignment");

        cbo_NPCAlignment.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Lawful Good", "Lawful Neutral", "Lawful Evil", "Neutral Good", "True Neutral", "Neutral Evil", "Chaotic Good", "Chaotic Neutral", "Chaotic Evil" }));

        lbl_NPCGender.setText("Gender");

        cbo_NPCGender.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Male", "Female" }));

        cb_NPCCanTradeItems.setText("Can Trade Items");
        cb_NPCCanTradeItems.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        cb_NPCCanTradeItems.setMargin(new java.awt.Insets(0, 0, 0, 0));

        cb_NPCCanBeSaved.setText("Can be Saved");
        cb_NPCCanBeSaved.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        cb_NPCCanBeSaved.setMargin(new java.awt.Insets(0, 0, 0, 0));

        cb_NPCAllowInCombat.setText("Allow in Combat");
        cb_NPCAllowInCombat.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        cb_NPCAllowInCombat.setMargin(new java.awt.Insets(0, 0, 0, 0));

        org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jPanel4Layout.createSequentialGroup()
                        .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(lbl_NPCAlignment)
                            .add(lbl_NPCGender)
                            .add(lbl_NPCRace))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                            .add(cbo_NPCAlignment, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .add(cbo_NPCGender, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .add(cbo_NPCRace, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 125, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(cb_NPCCanTradeItems)
                    .add(cb_NPCCanBeSaved)
                    .add(cb_NPCAllowInCombat))
                .addContainerGap())
        );

        jPanel4Layout.linkSize(new java.awt.Component[] {lbl_NPCAlignment, lbl_NPCGender, lbl_NPCRace}, org.jdesktop.layout.GroupLayout.HORIZONTAL);

        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCRace)
                    .add(cbo_NPCRace, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCAlignment)
                    .add(cbo_NPCAlignment, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCGender)
                    .add(cbo_NPCGender, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(cb_NPCCanTradeItems)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(cb_NPCCanBeSaved)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(cb_NPCAllowInCombat)
                .addContainerGap(165, Short.MAX_VALUE))
        );

        jScrollPane3.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Levels"));
        jScrollPane3.setPreferredSize(new java.awt.Dimension(317, 434));
        tbl_ClassLevels.setComponentPopupMenu(pop_NPCLevels);
        tbl_ClassLevels.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null},
                {null, null, null},
                {null, null, null},
                {null, null, null}
            },
            new String [] {
                "Class", "Levels", "Experience Points"
            }
        ));
        jScrollPane3.setViewportView(tbl_ClassLevels);

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jScrollPane3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 351, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jTabbedPane1.addTab("General", jPanel1);

        jLabel1.setText("yaddos");

        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel3Layout.createSequentialGroup()
                .add(299, 299, 299)
                .add(jLabel1)
                .addContainerGap(423, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap(184, Short.MAX_VALUE)
                .add(jLabel1)
                .add(176, 176, 176))
        );
        jTabbedPane1.addTab("Money", jPanel3);

        org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 767, Short.MAX_VALUE)
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 375, Short.MAX_VALUE)
        );
        jTabbedPane1.addTab("Picture", jPanel5);

        org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 767, Short.MAX_VALUE)
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 375, Short.MAX_VALUE)
        );
        jTabbedPane1.addTab("Icon", jPanel6);

        jTable1.setComponentPopupMenu(pop_NPCItems);
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jTabbedPane1.addTab("Items", jScrollPane1);

        jTable2.setComponentPopupMenu(pop_NPCSpells);
        jTable2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jTable2.setToolTipText("Right Click for options...");
        jScrollPane2.setViewportView(jTable2);

        jTabbedPane1.addTab("Spells", jScrollPane2);

        jSplitPane1.setTopComponent(jTabbedPane1);

        jTextPane1.setBackground(new java.awt.Color(0, 0, 0));
        jTextPane1.setForeground(new java.awt.Color(255, 255, 255));
        jTextPane1.setText("Non Player Characters Editor...");
        jScrollPane4.setViewportView(jTextPane1);

        jSplitPane1.setRightComponent(jScrollPane4);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jToolBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(lbl_NPCName)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(txt_NPCName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 569, Short.MAX_VALUE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(btn_NPCGenerateName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .addContainerGap(518, Short.MAX_VALUE)
                .add(btn_NPCCancel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(btn_NPCSave, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jSplitPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 776, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(jToolBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(lbl_NPCName)
                    .add(btn_NPCGenerateName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(txt_NPCName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jSplitPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(btn_NPCSave, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(btn_NPCCancel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
    }// </editor-fold>//GEN-END:initComponents

    private void btn_NPCGenerateNameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_NPCGenerateNameActionPerformed
        txt_NPCName.setText(HumanNameGenerator.generateName(cbo_NPCGender.getSelectedItem().toString(), 1));
    }//GEN-LAST:event_btn_NPCGenerateNameActionPerformed

    private void btn_NPCCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_NPCCancelActionPerformed
        PanelSwapper.swap(new pnl_NPCList(), this); 
    }//GEN-LAST:event_btn_NPCCancelActionPerformed
    
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btn_NPCCancel;
    private javax.swing.JButton btn_NPCGenerateName;
    private javax.swing.JButton btn_NPCRollStats;
    private javax.swing.JButton btn_NPCSave;
    private javax.swing.JCheckBox cb_NPCAllowInCombat;
    private javax.swing.JCheckBox cb_NPCCanBeSaved;
    private javax.swing.JCheckBox cb_NPCCanTradeItems;
    private javax.swing.JComboBox cbo_NPCAlignment;
    private javax.swing.JComboBox cbo_NPCGender;
    private javax.swing.JComboBox cbo_NPCRace;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTable jTable2;
    private javax.swing.JTextPane jTextPane1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JLabel lbl_NPCAge;
    private javax.swing.JLabel lbl_NPCAlignment;
    private javax.swing.JLabel lbl_NPCCharisma;
    private javax.swing.JLabel lbl_NPCContstitution;
    private javax.swing.JLabel lbl_NPCDexterity;
    private javax.swing.JLabel lbl_NPCGender;
    private javax.swing.JLabel lbl_NPCHitPoints;
    private javax.swing.JLabel lbl_NPCIntelligence;
    private javax.swing.JLabel lbl_NPCName;
    private javax.swing.JLabel lbl_NPCRace;
    private javax.swing.JLabel lbl_NPCStrength;
    private javax.swing.JLabel lbl_NPCWisdom;
    private javax.swing.JPopupMenu pop_NPCItems;
    private javax.swing.JPopupMenu pop_NPCLevels;
    private javax.swing.JPopupMenu pop_NPCSpells;
    private javax.swing.JSpinner spnr_NPCAge;
    private javax.swing.JSpinner spnr_NPCCharisma;
    private javax.swing.JSpinner spnr_NPCConstitution;
    private javax.swing.JSpinner spnr_NPCDexterity;
    private javax.swing.JSpinner spnr_NPCHitPoints;
    private javax.swing.JSpinner spnr_NPCIntelligence;
    private javax.swing.JSpinner spnr_NPCStrength;
    private javax.swing.JSpinner spnr_NPCWisdom;
    private javax.swing.JTable tbl_ClassLevels;
    private javax.swing.JTextField txt_NPCName;
    // End of variables declaration//GEN-END:variables
    
}
